home *** CD-ROM | disk | FTP | other *** search
/ All for Cell Phones: Sony Ericsson / Sony-Ericsson 2004.iso / Java / microreader / MicroReader.jar / Book.class (.txt) < prev    next >
Encoding:
Java Class File  |  2002-06-10  |  27.6 KB  |  1,770 lines

  1. import com.siemens.mp.NotAllowedException;
  2. import com.siemens.mp.gsm.Call;
  3. import com.siemens.mp.io.File;
  4. import java.util.Random;
  5. import java.util.Stack;
  6. import java.util.Vector;
  7. import javax.microedition.lcdui.Command;
  8. import javax.microedition.lcdui.CommandListener;
  9. import javax.microedition.lcdui.Display;
  10. import javax.microedition.lcdui.Displayable;
  11. import javax.microedition.lcdui.Form;
  12. import javax.microedition.lcdui.Image;
  13. import javax.microedition.lcdui.List;
  14. import javax.microedition.lcdui.Screen;
  15. import javax.microedition.lcdui.StringItem;
  16. import javax.microedition.lcdui.TextBox;
  17. import javax.microedition.midlet.MIDlet;
  18.  
  19. public class Book extends MIDlet implements CommandListener, Runnable {
  20.    // $FF: renamed from: aw java.lang.String
  21.    static final String field_0 = "MicroReader";
  22.    // $FF: renamed from: Y java.lang.String
  23.    static final String field_1 = "1.0";
  24.    // $FF: renamed from: al java.lang.String
  25.    static final String field_2 = "Exit";
  26.    // $FF: renamed from: aK java.lang.String
  27.    static final String field_3 = "Add bookmark";
  28.    // $FF: renamed from: E java.lang.String
  29.    static final String field_4 = "Add";
  30.    // $FF: renamed from: ar java.lang.String
  31.    static final String field_5 = "Clear";
  32.    // $FF: renamed from: r java.lang.String
  33.    static final String field_6 = "Clear all";
  34.    // $FF: renamed from: if java.lang.String
  35.    static final String field_7 = "Go to...";
  36.    // $FF: renamed from: j java.lang.String
  37.    static final String field_8 = "Search...";
  38.    // $FF: renamed from: aj java.lang.String
  39.    static final String field_9 = "Search";
  40.    // $FF: renamed from: aF java.lang.String
  41.    static final String field_10 = "Reverse search";
  42.    // $FF: renamed from: R java.lang.String
  43.    static final String field_11 = "Go to";
  44.    // $FF: renamed from: ab java.lang.String
  45.    static final String field_12 = "Help";
  46.    // $FF: renamed from: t java.lang.String
  47.    static final String field_13 = "Readme.1.0.txt";
  48.    // $FF: renamed from: T java.lang.String
  49.    static final String field_14 = "View Readme";
  50.    // $FF: renamed from: P java.lang.String
  51.    static final String field_15 = "Cancel";
  52.    // $FF: renamed from: q java.lang.String
  53.    static final String field_16 = "Back";
  54.    // $FF: renamed from: aO java.lang.String
  55.    static final String field_17 = "Setup...";
  56.    // $FF: renamed from: new java.lang.String
  57.    static final String field_18 = "Character set...";
  58.    // $FF: renamed from: null java.lang.String
  59.    static final String field_19 = "File...";
  60.    // $FF: renamed from: d java.lang.String
  61.    static final String field_20 = "Open...";
  62.    // $FF: renamed from: n java.lang.String
  63.    static final String field_21 = "Download...";
  64.    // $FF: renamed from: aJ java.lang.String
  65.    static final String field_22 = "http://";
  66.    // $FF: renamed from: av java.lang.String
  67.    static final String field_23 = "Edit..";
  68.    // $FF: renamed from: y java.lang.String
  69.    static final String field_24 = "OK";
  70.    // $FF: renamed from: X java.lang.String
  71.    static final String field_25 = "Save";
  72.    // $FF: renamed from: aq java.lang.String
  73.    static final String field_26 = "Delete...";
  74.    // $FF: renamed from: au java.lang.String
  75.    static final String field_27 = "Rename...";
  76.    // $FF: renamed from: D java.lang.String
  77.    static final String field_28 = "prefs.cfg";
  78.    // $FF: renamed from: am java.lang.String
  79.    static final String field_29 = "Page number...";
  80.    // $FF: renamed from: J java.lang.String
  81.    static final String field_30 = "Bookmark";
  82.    // $FF: renamed from: aE java.lang.String
  83.    static final String field_31 = "Random page";
  84.    // $FF: renamed from: s java.lang.String
  85.    static final String field_32 = "First page";
  86.    // $FF: renamed from: O java.lang.String
  87.    static final String field_33 = "Last page";
  88.    // $FF: renamed from: B java.lang.String
  89.    static final String field_34 = "Furthest read";
  90.    // $FF: renamed from: f java.lang.String
  91.    static final String field_35 = "Yes";
  92.    // $FF: renamed from: S java.lang.String
  93.    static final String field_36 = "No";
  94.    // $FF: renamed from: aB byte
  95.    static final byte field_37 = 0;
  96.    // $FF: renamed from: ad byte
  97.    static final byte field_38 = 1;
  98.    // $FF: renamed from: M byte
  99.    static final byte field_39 = 2;
  100.    // $FF: renamed from: k byte
  101.    static final byte field_40 = 3;
  102.    // $FF: renamed from: do byte
  103.    static final byte field_41 = 4;
  104.    // $FF: renamed from: aI byte
  105.    static final byte field_42 = 5;
  106.    // $FF: renamed from: as byte
  107.    static final byte field_43 = 6;
  108.    // $FF: renamed from: char boolean
  109.    public static boolean field_44 = false;
  110.    // $FF: renamed from: e boolean
  111.    public static boolean field_45 = false;
  112.    // $FF: renamed from: try int
  113.    private static final int field_46 = 4096;
  114.    // $FF: renamed from: af byte[]
  115.    private static byte[] field_47;
  116.    // $FF: renamed from: H boolean[]
  117.    boolean[] field_48 = new boolean[]{false, false, true, false, false, true, false};
  118.    // $FF: renamed from: N java.lang.String[]
  119.    static final String[] field_49 = new String[]{"Bold font", "Large font", "Backlight", "Line scroll", "Full screen", "Smart format", "Line space"};
  120.    // $FF: renamed from: aA java.lang.String[]
  121.    private static final String[] field_50 = new String[]{"File...", "Add bookmark", "Search...", "Go to...", "Edit..", "Setup...", "Help"};
  122.    // $FF: renamed from: i javax.microedition.lcdui.Command
  123.    Command field_51;
  124.    // $FF: renamed from: U javax.microedition.lcdui.Command
  125.    Command field_52;
  126.    // $FF: renamed from: aC Book
  127.    static Book field_53;
  128.    // $FF: renamed from: else javax.microedition.lcdui.Display
  129.    Display field_54;
  130.    // $FF: renamed from: aL f
  131.    f field_55 = null;
  132.    // $FF: renamed from: v javax.microedition.lcdui.TextBox
  133.    TextBox field_56 = null;
  134.    // $FF: renamed from: g javax.microedition.lcdui.TextBox
  135.    TextBox field_57 = null;
  136.    // $FF: renamed from: G javax.microedition.lcdui.TextBox
  137.    TextBox field_58 = null;
  138.    // $FF: renamed from: an javax.microedition.lcdui.TextBox
  139.    TextBox field_59 = null;
  140.    // $FF: renamed from: goto java.lang.String
  141.    String field_60 = null;
  142.    // $FF: renamed from: z java.util.Vector
  143.    Vector field_61 = new Vector();
  144.    // $FF: renamed from: a java.util.Vector
  145.    Vector field_62 = null;
  146.    // $FF: renamed from: ak javax.microedition.lcdui.List
  147.    List field_63 = null;
  148.    // $FF: renamed from: ae javax.microedition.lcdui.Form
  149.    static Form field_64 = null;
  150.    // $FF: renamed from: long javax.microedition.lcdui.List
  151.    private List field_65 = null;
  152.    // $FF: renamed from: Q javax.microedition.lcdui.List
  153.    private List field_66 = null;
  154.    // $FF: renamed from: c javax.microedition.lcdui.List
  155.    private List field_67 = null;
  156.    // $FF: renamed from: x javax.microedition.lcdui.List
  157.    private List field_68 = null;
  158.    // $FF: renamed from: l javax.microedition.lcdui.Form
  159.    private Form field_69 = null;
  160.    // $FF: renamed from: byte javax.microedition.lcdui.Form
  161.    Form field_70 = null;
  162.    // $FF: renamed from: h javax.microedition.lcdui.List
  163.    private List field_71 = null;
  164.    // $FF: renamed from: A javax.microedition.lcdui.List
  165.    private List field_72 = null;
  166.    // $FF: renamed from: aD boolean
  167.    public volatile boolean field_73 = false;
  168.    // $FF: renamed from: aP boolean
  169.    public volatile boolean field_74 = false;
  170.    // $FF: renamed from: ay d
  171.    d field_75;
  172.    // $FF: renamed from: int b
  173.    b field_76;
  174.    // $FF: renamed from: ah java.util.Vector
  175.    private Vector field_77;
  176.    // $FF: renamed from: az java.lang.String
  177.    private String field_78 = "http://";
  178.    // $FF: renamed from: void java.lang.String
  179.    private String field_79;
  180.    // $FF: renamed from: ax java.lang.String
  181.    private static String field_80;
  182.    // $FF: renamed from: aN javax.microedition.lcdui.List
  183.    private List field_81 = null;
  184.    // $FF: renamed from: ag java.lang.String
  185.    static String field_82 = "Automatic";
  186.    // $FF: renamed from: aG java.lang.String[]
  187.    static final String[] field_83 = new String[]{"First page", "Bookmark", "Page number...", "Furthest read", "Last page", "Random page"};
  188.    // $FF: renamed from: w char[]
  189.    private static final char[] field_84 = new char[]{'"', '\t', ' ', '\r', '\n', '\'', '\u0000'};
  190.    // $FF: renamed from: for java.lang.String[]
  191.    private static final String[] field_85 = new String[]{"About", "MicroReader 1.0 Copyright (c) 2002 Trond Hvoslef\n\nThis is a plain text file viewer for Siemens SL45i and M50.\nBookmarks and speedy handling of large text files\nmakes it usable as an eBook reader.\n\nComments to trhv@bigfoot.com are welcome.", "Keys", "Right: Next page.\nLeft: Previous page.\n1: Find previous. Long press goes to page 1.\n2: Previous line.\n3: Find next. Press long for new search.\n4: Previous page.\n5: Hold to show file info.\n6: Next page.\n7: Set default bookmark.\n8: Next line.\n9: Next word.\n*: Change font.\n#: Next byte.\n0: Backlight on/off.\nVol up/down: Page up/down.\nCall: Dial a number if found in text.\nHangup: Edit page.\nPlay: Slide show. \nLeft softkey: 'Go to...'\nRight softkey: Main menu.\nRecord: Toggle full screen mode.", "File menu", "Select a file from the list of recent files, open a new one, or exit program.\nPress Options to rename, delete, edit or download a file.", "Open file", "Files reside in the 'storage' folder where MicroReader is installed.\nKey in the file name (.txt is optional) and select OK.\nIf the file does not exist, a new one is created.", "Download file", "Choose option Download from File menu to get a text file from an Internet web server.\nProject Gutenberg (promo.net/pg) offers thousands of titles.\nFor easy access, get http://home.c2i.net/thvoslef/index.txt.", "Search", "Search forward or backward from current file position for a page containing\nthe word(s) you specify. Searches are case sensitive.\nPress keys 1/3 to repeat search reverse/forward.", "Go to", "Select Bookmark, Page number, Furthest read, First, Last or Random page.\nTo simplify, the size of a 'page' is defined as 128 bytes.", "Edit", "You can edit the current page with T9 input and save it back to the file.\nCut/Copy selects from cursor to Mark. Default Mark is at end of page.", "Bookmarks", "MicroReader automatically bookmarks current page and shows it when started.\n'Go to Bookmark' lists all bookmarks you have added, sorted by page number.\nUse key 7 to set (replace) the default bookmark.", "Slide show", "Press Play then read as usual, page up/down when you need to.\nMicroReader quickly learns how fast you read and turns the page for you.\nTo stop, press any other key.", "Setup", "Select bold, large or normal font.\nLine scroll:  Makes navikey up/down scroll one line.\nBacklight: Forces light on.\nFull screen: Hide scrollbar and softkey.\nSmart format: Trim whitespace etc.\nLine space: May improve readability.\nCharacter sets: Arabic, Cyrillic and Central European are Windows encodings.\nWestern, Greek, Hebrew: ISO 8859."};
  192.    // $FF: renamed from: ai java.lang.String[]
  193.    static final String[] field_86 = new String[]{"Open...", "Download...", "Rename...", "Edit..", "Cancel"};
  194.    // $FF: renamed from: p javax.microedition.lcdui.Command
  195.    private Command field_87;
  196.    // $FF: renamed from: L java.lang.String
  197.    static String field_88 = null;
  198.    // $FF: renamed from: aM java.lang.String
  199.    private static final String field_89 = "Keep bookmarks";
  200.    // $FF: renamed from: V boolean
  201.    private boolean field_90;
  202.    // $FF: renamed from: at javax.microedition.lcdui.TextBox
  203.    private TextBox field_91 = null;
  204.    // $FF: renamed from: ac java.lang.String
  205.    private String field_92 = null;
  206.    // $FF: renamed from: aH java.lang.String
  207.    private String field_93 = null;
  208.    // $FF: renamed from: C javax.microedition.lcdui.TextBox
  209.    private static TextBox field_94 = null;
  210.    // $FF: renamed from: Z a
  211.    private a field_95;
  212.    // $FF: renamed from: W java.lang.String
  213.    private static final String field_96 = "Line feed";
  214.    // $FF: renamed from: K java.lang.String
  215.    private static final String field_97 = "Cut";
  216.    // $FF: renamed from: m java.lang.String
  217.    private static final String field_98 = "Copy";
  218.    // $FF: renamed from: F java.lang.String
  219.    private static final String field_99 = "Mark";
  220.    // $FF: renamed from: ap java.lang.String
  221.    private static final String field_100 = "Paste";
  222.    // $FF: renamed from: ao java.lang.String[]
  223.    private static final String[] field_101 = new String[]{"Save", "Line feed", "Cancel", "Mark", "Cut", "Copy"};
  224.    // $FF: renamed from: case java.lang.String
  225.    private String field_102 = null;
  226.    // $FF: renamed from: u java.lang.String
  227.    private String field_103 = null;
  228.    // $FF: renamed from: aa javax.microedition.lcdui.Command
  229.    private Command field_104;
  230.    // $FF: renamed from: I boolean
  231.    boolean field_105 = false;
  232.    // $FF: renamed from: b int
  233.    private int field_106 = 256;
  234.    // $FF: renamed from: o int
  235.    private int field_107;
  236.  
  237.    protected void startApp() {
  238.       System.gc();
  239.       this.method_64();
  240.       field_47 = new byte[4096];
  241.       this.method_17();
  242.       this.method_7();
  243.       if (this.field_61.size() > 0) {
  244.          this.field_60 = (String)this.field_61.firstElement();
  245.       } else {
  246.          this.method_23(this.method_45());
  247.       }
  248.  
  249.       this.field_55 = new f(this.field_60, this.field_48);
  250.       this.field_54 = Display.getDisplay(this);
  251.       this.field_51 = new Command("OK", 4, 0);
  252.       this.field_52 = new Command("Cancel", 2, 1);
  253.  
  254.       for(int var1 = 0; var1 < field_50.length; ++var1) {
  255.          this.field_55.addCommand(new Command(field_50[var1], 1, 0));
  256.       }
  257.  
  258.       this.method_50();
  259.       this.field_55.setCommandListener(this);
  260.       this.field_54.setCurrent(this.field_55);
  261.       Thread var2 = new Thread(this);
  262.       var2.setPriority(1);
  263.       var2.start();
  264.       Object var3 = null;
  265.    }
  266.  
  267.    public void run() {
  268.       this.field_75 = new d();
  269.       this.method_30();
  270.       int var1 = this.field_61.size();
  271.  
  272.       for(int var2 = 1; var2 < var1; ++var2) {
  273.          Vector var3 = this.field_61;
  274.          synchronized(var3) {
  275.             String var4 = (String)this.field_61.elementAt(var2);
  276.             Thread.yield();
  277.             boolean var5 = !method_6(var4);
  278.             Thread.yield();
  279.             var5 = var5 || this.field_61.indexOf(var4) != var2;
  280.             if (var5) {
  281.                this.field_61.removeElementAt(var2);
  282.                --var2;
  283.             } else {
  284.                this.field_65.insert(var2, var4, (Image)null);
  285.             }
  286.  
  287.             var1 = this.field_61.size();
  288.          }
  289.       }
  290.  
  291.       if (var1 > 1) {
  292.          this.field_65.addCommand(this.field_87);
  293.       }
  294.  
  295.    }
  296.  
  297.    public Book() {
  298.       field_53 = this;
  299.    }
  300.  
  301.    // $FF: renamed from: try () Book
  302.    public static Book method_0() {
  303.       return field_53;
  304.    }
  305.  
  306.    // $FF: renamed from: c () byte[]
  307.    public static byte[] method_1() {
  308.       return field_47;
  309.    }
  310.  
  311.    protected void destroyApp(boolean var1) {
  312.       this.field_65 = this.field_66 = this.field_67 = this.field_68 = this.field_72 = null;
  313.       this.field_71 = null;
  314.       this.field_56 = this.field_57 = this.field_59 = null;
  315.       this.field_55 = null;
  316.       this.field_75 = null;
  317.       this.field_61 = null;
  318.       this.field_60 = null;
  319.       field_53 = null;
  320.       this.field_54.setCurrent((Displayable)null);
  321.       ((MIDlet)this).notifyDestroyed();
  322.    }
  323.  
  324.    protected void pauseApp() {
  325.       ((MIDlet)this).notifyPaused();
  326.    }
  327.  
  328.    // $FF: renamed from: e (java.lang.String) byte[]
  329.    static byte[] method_2(String var0) {
  330.       byte[] var1 = new byte[0];
  331.       File var2 = new File();
  332.  
  333.       try {
  334.          int var3 = var2.open(var0);
  335.          int var4 = var2.length(var3);
  336.          var1 = new byte[var4];
  337.          var2.read(var3, var1, 0, var4);
  338.          var2.close(var3);
  339.       } catch (Exception var5) {
  340.       }
  341.  
  342.       return var1;
  343.    }
  344.  
  345.    // $FF: renamed from: a (java.lang.String, byte[], int, boolean) boolean
  346.    static boolean method_3(String var0, byte[] var1, int var2, boolean var3) {
  347.       File var4 = new File();
  348.       if (var3) {
  349.          try {
  350.             File.delete(var0);
  351.          } catch (Exception var7) {
  352.          }
  353.       }
  354.  
  355.       try {
  356.          int var5 = var4.open(var0);
  357.          var4.write(var5, var1, 0, var2);
  358.          var4.close(var5);
  359.          return true;
  360.       } catch (Exception var6) {
  361.          return false;
  362.       }
  363.    }
  364.  
  365.    // $FF: renamed from: byte (java.lang.String) java.lang.String
  366.    static String method_4(String var0) {
  367.       return new String(method_2(var0));
  368.    }
  369.  
  370.    // $FF: renamed from: a (java.lang.String, java.lang.String, boolean) void
  371.    static void method_5(String var0, String var1, boolean var2) {
  372.       byte[] var3 = var1.getBytes();
  373.       method_3(var0, var3, var3.length, var2);
  374.    }
  375.  
  376.    // $FF: renamed from: o (java.lang.String) boolean
  377.    static boolean method_6(String var0) {
  378.       try {
  379.          return File.exists(var0) > 0;
  380.       } catch (Exception var2) {
  381.          field_44 = true;
  382.          return false;
  383.       }
  384.    }
  385.  
  386.    // $FF: renamed from: i () void
  387.    public void method_7() {
  388.       if (this.field_48[2]) {
  389.          e.if();
  390.       }
  391.  
  392.    }
  393.  
  394.    // $FF: renamed from: j () void
  395.    public void method_8() {
  396.       if (!(this.field_48[2] = !this.field_48[2])) {
  397.          e.a();
  398.       }
  399.  
  400.    }
  401.  
  402.    // $FF: renamed from: l (java.lang.String) java.lang.String
  403.    static String method_9(String var0) {
  404.       String var1 = var0 + ".txt";
  405.       String var2 = null;
  406.       if (method_6(var1)) {
  407.          var2 = var1;
  408.       } else if (method_6(var0)) {
  409.          var2 = var0;
  410.       }
  411.  
  412.       return var2;
  413.    }
  414.  
  415.    // $FF: renamed from: m (java.lang.String) java.lang.String
  416.    static String method_10(String var0) {
  417.       int var2 = var0.lastIndexOf(47);
  418.       if (var2 < 0) {
  419.          var2 = 0;
  420.       } else {
  421.          ++var2;
  422.       }
  423.  
  424.       String var1 = var0.substring(var2);
  425.       int var3 = var1.lastIndexOf(46);
  426.       if (var3 > 0 && var1.indexOf(".txt", var3) == var3) {
  427.          var1 = var1.substring(0, var3);
  428.       }
  429.  
  430.       return var1;
  431.    }
  432.  
  433.    // $FF: renamed from: case (java.lang.String) java.lang.String
  434.    static String method_11(String var0) {
  435.       return method_10(var0) + ".bmk";
  436.    }
  437.  
  438.    // $FF: renamed from: a (java.lang.String) java.lang.String
  439.    public String method_12(String var1) {
  440.       return var1 + " [" + method_10(this.field_60) + "]";
  441.    }
  442.  
  443.    // $FF: renamed from: f () void
  444.    void method_13() {
  445.       if (this.field_55 != null) {
  446.          int var1 = this.field_55.do();
  447.          this.field_55.a(var1);
  448.       }
  449.  
  450.    }
  451.  
  452.    // $FF: renamed from: a (java.util.Vector, java.lang.String) void
  453.    protected void method_14(Vector var1, String var2) {
  454.       StringBuffer var3 = new StringBuffer();
  455.  
  456.       for(int var4 = 0; var4 < var1.size(); ++var4) {
  457.          String var5 = (String)var1.elementAt(var4);
  458.          var3.append(var5);
  459.          var3.append('|');
  460.       }
  461.  
  462.       var3.append('\u0000');
  463.       byte[] var6 = f.a(var3.toString());
  464.       method_3(var2, var6, var6.length, false);
  465.    }
  466.  
  467.    // $FF: renamed from: a (java.lang.String, char, int) java.util.Vector
  468.    static Vector method_15(String var0, char var1, int var2) {
  469.       Vector var3 = new Vector();
  470.  
  471.       int var5;
  472.       for(int var4 = var2; var4 < var0.length() && var0.charAt(var4) != 0; var4 = var5 + 1) {
  473.          var5 = var0.indexOf(var1, var4);
  474.          if (var5 <= 0) {
  475.             break;
  476.          }
  477.  
  478.          var3.addElement(var0.substring(var4, var5));
  479.       }
  480.  
  481.       return var3;
  482.    }
  483.  
  484.    // $FF: renamed from: a (java.lang.String, boolean) java.util.Vector
  485.    public static Vector method_16(String var0, boolean var1) {
  486.       byte[] var2 = method_2(var0);
  487.       boolean var3 = var2.length > 1 && (var2[0] & 255) == 255 && (var2[1] & 255) == 254;
  488.       var1 |= var3;
  489.       String var4 = var1 ? f.a(var2) : new String(var2);
  490.       return method_15(var4, '|', var3 ? 1 : 0);
  491.    }
  492.  
  493.    // $FF: renamed from: b () void
  494.    private void method_17() {
  495.       field_80 = ((MIDlet)this).getAppProperty("Charset-map");
  496.       if (field_80 == null) {
  497.          field_80 = "";
  498.       }
  499.  
  500.       field_82 = "Automatic";
  501.       field_44 = false;
  502.       String var1 = System.getProperty("com.siemens.OSVersion");
  503.       if (var1 == null) {
  504.          method_6("z├╕├Ñ├ª├Ñ1.xpefkl");
  505.          if (!field_44) {
  506.             field_45 = true;
  507.          }
  508.       }
  509.  
  510.       Vector var2 = method_16("prefs.cfg", false);
  511.       if (var2.size() > 0) {
  512.          String var3 = (String)var2.elementAt(0);
  513.          if (!Character.isDigit(var3.charAt(0))) {
  514.             field_82 = var3;
  515.             var2.removeElementAt(0);
  516.          }
  517.       }
  518.  
  519.       if (var2.size() > 0) {
  520.          String var6 = (String)var2.elementAt(0);
  521.          int var4 = this.field_48.length;
  522.          if (var6.length() < var4) {
  523.             var4 = var6.length();
  524.          }
  525.  
  526.          for(int var5 = 0; var5 < var4; ++var5) {
  527.             this.field_48[var5] = var6.charAt(var5) != '0';
  528.          }
  529.  
  530.          var2.removeElementAt(0);
  531.       }
  532.  
  533.       while(var2.size() > 0 && !method_6((String)var2.elementAt(0))) {
  534.          var2.removeElementAt(0);
  535.       }
  536.  
  537.       this.field_61 = var2;
  538.    }
  539.  
  540.    // $FF: renamed from: a (java.lang.String, int) java.lang.String
  541.    static String method_18(String var0, int var1) {
  542.       String var2 = null;
  543.       int var3 = var0.indexOf(61, var1);
  544.       if (var3 >= 0) {
  545.          int var4 = var0.indexOf(59, var3);
  546.          if (var4 > var3) {
  547.             var2 = var0.substring(var3 + 1, var4);
  548.          }
  549.       }
  550.  
  551.       return var2;
  552.    }
  553.  
  554.    // $FF: renamed from: int () java.lang.String
  555.    static String method_19() {
  556.       String var0 = null;
  557.       String var1 = field_82;
  558.       if (var1.equals("Automatic")) {
  559.          var1 = System.getProperty("com.siemens.language");
  560.          if (var1 == null) {
  561.             var1 = System.getProperty("microedition.locale");
  562.          }
  563.  
  564.          var1 = "%" + var1;
  565.       }
  566.  
  567.       int var2 = field_80.indexOf(var1);
  568.       if (var2 >= 0) {
  569.          var0 = method_18(field_80, var2 - 1);
  570.       }
  571.  
  572.       return var0;
  573.    }
  574.  
  575.    // $FF: renamed from: e () void
  576.    protected synchronized void method_20() {
  577.       byte[] var1 = method_1();
  578.       int var2 = 0;
  579.       byte[] var3 = field_82.getBytes();
  580.       System.arraycopy(var3, 0, var1, var2, var3.length);
  581.       var2 += var3.length;
  582.       var1[var2++] = 124;
  583.  
  584.       for(int var4 = 0; var4 < this.field_48.length; ++var4) {
  585.          var1[var2++] = (byte)(this.field_48[var4] ? 49 : 48);
  586.       }
  587.  
  588.       var1[var2++] = 124;
  589.  
  590.       for(int var5 = 0; var5 < this.field_61.size(); ++var5) {
  591.          String var6 = (String)this.field_61.elementAt(var5);
  592.          var3 = var6.getBytes();
  593.          System.arraycopy(var3, 0, var1, var2, var3.length);
  594.          var2 += var3.length;
  595.          var1[var2++] = 124;
  596.       }
  597.  
  598.       var1[var2++] = 0;
  599.       method_3("prefs.cfg", var1, var2, false);
  600.    }
  601.  
  602.    // $FF: renamed from: a () java.util.Vector
  603.    Vector method_21() {
  604.       Vector var1 = new Vector();
  605.  
  606.       for(int var2 = 1; var2 < 9; ++var2) {
  607.          String var3 = ((MIDlet)this).getAppProperty("URL-" + var2);
  608.          if (var3 != null) {
  609.             int var4 = var3.indexOf(61);
  610.             if (var4 > 0) {
  611.                var1.addElement(var3.substring(0, var4));
  612.                var1.addElement(var3.substring(var4 + 1));
  613.             }
  614.          }
  615.       }
  616.  
  617.       return var1;
  618.    }
  619.  
  620.    // $FF: renamed from: a (java.lang.String, java.lang.String) javax.microedition.lcdui.Displayable
  621.    private Displayable method_22(String var1, String var2) {
  622.       if (this.field_59 == null) {
  623.          this.field_59 = new TextBox("", (String)null, 100, 4);
  624.          this.field_59.addCommand(this.field_51);
  625.          this.field_59.addCommand(new Command("Cancel", 2, 1));
  626.          Vector var3 = this.method_21();
  627.  
  628.          for(int var4 = 0; var4 < var3.size(); var4 += 2) {
  629.             this.field_59.addCommand(new Command((String)var3.elementAt(var4), 4, var4 + 5));
  630.          }
  631.       }
  632.  
  633.       this.field_59.setTitle(var1);
  634.       if (var2 != null) {
  635.          this.field_59.setString(var2);
  636.       }
  637.  
  638.       this.field_54.setCurrent(this.field_59);
  639.       this.field_59.setCommandListener(this);
  640.       return this.field_59;
  641.    }
  642.  
  643.    // $FF: renamed from: f (java.lang.String) void
  644.    public void method_23(String var1) {
  645.       Vector var2 = this.field_61;
  646.       synchronized(var2) {
  647.          int var3 = this.field_61.indexOf(var1);
  648.          if (var3 != 0) {
  649.             if (var3 > 0) {
  650.                this.field_61.removeElementAt(var3);
  651.                if (this.field_65 != null) {
  652.                   this.field_65.delete(var3);
  653.                }
  654.             }
  655.  
  656.             this.field_61.insertElementAt(var1, 0);
  657.             if (this.field_65 != null) {
  658.                this.field_65.insert(1, this.field_60, (Image)null);
  659.                if (var3 < 0 && this.field_61.size() == 2) {
  660.                   this.field_65.addCommand(this.field_87);
  661.                }
  662.             }
  663.  
  664.             this.field_60 = var1;
  665.             this.method_20();
  666.          }
  667.       }
  668.    }
  669.  
  670.    // $FF: renamed from: k (java.lang.String) void
  671.    public void method_24(String var1) {
  672.       int var2 = this.field_61.indexOf(var1);
  673.       if (var2 > 0) {
  674.          this.field_61.removeElementAt(var2);
  675.          if (this.field_65 != null) {
  676.             this.field_65.delete(var2);
  677.             if (this.field_61.size() == 1) {
  678.                this.field_65.removeCommand(this.field_87);
  679.             }
  680.          }
  681.  
  682.          this.method_20();
  683.       }
  684.  
  685.    }
  686.  
  687.    // $FF: renamed from: j (java.lang.String) void
  688.    protected void method_25(String var1) {
  689.       this.field_55.null();
  690.       this.field_55.if(var1);
  691.       if (field_88 == null) {
  692.          this.method_23(var1);
  693.       }
  694.  
  695.    }
  696.  
  697.    // $FF: renamed from: a (d, java.lang.String, int, boolean) void
  698.    synchronized void method_26(d var1, String var2, int var3, boolean var4) {
  699.       if (var3 >= 0) {
  700.          this.field_55.a(var3);
  701.          this.field_54.setCurrent(this.field_55);
  702.       } else if (var4) {
  703.          this.field_54.setCurrent(this.field_55);
  704.       } else {
  705.          this.field_56.setTitle("Not found");
  706.          this.field_54.setCurrent(this.field_56);
  707.       }
  708.  
  709.       this.method_7();
  710.       this.field_73 = false;
  711.    }
  712.  
  713.    // $FF: renamed from: a (boolean) javax.microedition.lcdui.Displayable
  714.    protected Displayable method_27(boolean var1) {
  715.       if (this.field_56 != null) {
  716.          String var2 = this.field_56.getString();
  717.          if (var2.length() > 0) {
  718.             int var3 = this.field_55.do();
  719.             if (var1) {
  720.                if (this.field_55.ak.int > var3) {
  721.                   var3 = this.field_55.ak.int;
  722.                }
  723.             } else if (var3 > 0) {
  724.                --var3;
  725.             }
  726.  
  727.             this.method_13();
  728.             this.field_75.a(var2, this.field_60, var3, var1);
  729.             this.field_73 = true;
  730.             this.field_54.setCurrent(this.field_75);
  731.             return null;
  732.          }
  733.       }
  734.  
  735.       return this.method_28();
  736.    }
  737.  
  738.    // $FF: renamed from: do () javax.microedition.lcdui.Displayable
  739.    public Displayable method_28() {
  740.       if (this.field_62 == null) {
  741.          this.field_62 = method_16("srch.cfg", true);
  742.       }
  743.  
  744.       int var1 = this.field_62.size();
  745.       this.field_56 = new TextBox("", (String)null, 80, 0);
  746.       Command var2 = new Command("Search", 4, 0);
  747.       Command var3 = new Command("Reverse search", 4, var1 + 3);
  748.       this.field_56.addCommand(var2);
  749.       this.field_56.addCommand(var3);
  750.       this.field_56.addCommand(this.field_52);
  751.       if (var1 > 0) {
  752.          this.field_56.setString((String)this.field_62.elementAt(0));
  753.  
  754.          for(int var4 = 1; var4 < var1; ++var4) {
  755.             Command var5 = new Command("\"" + (String)this.field_62.elementAt(var4) + "\"", 4, var4 + 2);
  756.             this.field_56.addCommand(var5);
  757.          }
  758.       }
  759.  
  760.       this.field_56.setTitle("Search for");
  761.       this.field_54.setCurrent(this.field_56);
  762.       this.field_56.setCommandListener(this);
  763.       return null;
  764.    }
  765.  
  766.    // $FF: renamed from: p (java.lang.String) javax.microedition.lcdui.Displayable
  767.    private Displayable method_29(String var1) {
  768.       if (var1 != "Search" && var1 != "Reverse search") {
  769.          if (var1 == "Cancel") {
  770.             return this.field_55;
  771.          } else {
  772.             String var3 = var1.substring(1, var1.length() - 1);
  773.             this.field_62.removeElement(var3);
  774.             this.field_62.insertElementAt(var3, 0);
  775.             return this.method_28();
  776.          }
  777.       } else {
  778.          String var2 = this.field_56.getString();
  779.          this.field_62.removeElement(var2);
  780.          this.field_62.insertElementAt(var2, 0);
  781.          if (this.field_62.size() > 6) {
  782.             this.field_62.removeElementAt(6);
  783.          }
  784.  
  785.          this.method_14(this.field_62, "srch.cfg");
  786.          return this.method_27(var1 == "Search");
  787.       }
  788.    }
  789.  
  790.    // $FF: renamed from: long () javax.microedition.lcdui.Displayable
  791.    private Displayable method_30() {
  792.       if (this.field_72 == null) {
  793.          this.field_72 = new List("", 3, field_83, (Image[])null);
  794.          this.field_72.addCommand(this.field_52);
  795.       }
  796.  
  797.       this.field_72.setTitle("Go to");
  798.       this.field_72.setSelectedIndex(1, true);
  799.       return this.field_72;
  800.    }
  801.  
  802.    // $FF: renamed from: b (java.lang.String) javax.microedition.lcdui.Displayable
  803.    private Displayable method_31(String var1) {
  804.       if (var1 != "Cancel") {
  805.          this.method_48(this.field_72);
  806.          String var2 = this.field_72.getString(this.field_72.getSelectedIndex());
  807.          if (var2 == "Page number...") {
  808.             return this.method_58();
  809.          }
  810.  
  811.          if (var2 == "Bookmark") {
  812.             return this.method_32(-1);
  813.          }
  814.  
  815.          if (var2 == "Furthest read") {
  816.             this.field_55.new();
  817.          } else if (var2 == "Last page") {
  818.             this.field_55.a(f.I - 128 / 2, (char)(128 / 2 - 1));
  819.          } else if (var2 == "Random page") {
  820.             int var3 = (new Random()).nextInt();
  821.             this.field_55.a(Math.abs(var3) % this.field_55.long(), '\u0080');
  822.          } else if (var2 == "First page") {
  823.             this.field_55.a(0);
  824.          }
  825.  
  826.          this.field_55.null();
  827.       }
  828.  
  829.       return this.field_55;
  830.    }
  831.  
  832.    // $FF: renamed from: a (int) javax.microedition.lcdui.Displayable
  833.    private Displayable method_32(int var1) {
  834.       int var2 = this.field_55.new.size();
  835.       this.field_63 = new List("Bookmarks (" + var2 + ")", 3);
  836.  
  837.       for(int var3 = 0; var3 < var2; ++var3) {
  838.          int var4 = this.field_55.if(var3);
  839.          if (var1 < 0 && var4 == this.field_55.f) {
  840.             var1 = var3;
  841.          }
  842.  
  843.          String var5 = this.field_55.do(var4, 30);
  844.          this.field_63.append(var5, (Image)null);
  845.       }
  846.  
  847.       this.field_63.addCommand(new Command("Add", 4, 0));
  848.       if (var2 > 0) {
  849.          this.field_63.addCommand(new Command("Clear", 4, 0));
  850.          this.field_63.addCommand(new Command("Clear all", 4, 0));
  851.       }
  852.  
  853.       this.field_63.addCommand(this.field_52);
  854.       if (var1 >= 0) {
  855.          this.field_63.setSelectedIndex(var1, true);
  856.       }
  857.  
  858.       return this.field_63;
  859.    }
  860.  
  861.    // $FF: renamed from: for (java.lang.String) javax.microedition.lcdui.Displayable
  862.    private Displayable method_33(String var1) {
  863.       if (var1 != "Cancel") {
  864.          if (var1 == "Add") {
  865.             return this.method_32(this.field_55.case());
  866.          }
  867.  
  868.          int var2 = this.field_63.getSelectedIndex();
  869.          int var3 = this.field_55.if(var2);
  870.          if (var1 == "Clear all") {
  871.             var3 = -1;
  872.             var1 = "Clear";
  873.          }
  874.  
  875.          if (var1 == "Clear") {
  876.             this.field_55.a(var3, true);
  877.             return this.method_32(-1);
  878.          }
  879.  
  880.          this.field_55.a(var3);
  881.       }
  882.  
  883.       this.field_63 = null;
  884.       return this.field_55;
  885.    }
  886.  
  887.    // $FF: renamed from: new () javax.microedition.lcdui.Displayable
  888.    private Displayable method_34() {
  889.       this.field_71 = new List("Setup", 2, field_49, (Image[])null);
  890.       this.field_71.setSelectedFlags(this.field_48);
  891.       this.field_71.addCommand(this.field_51);
  892.       this.field_71.addCommand(new Command("Character set...", 4, 0));
  893.       this.field_71.addCommand(this.field_52);
  894.       return this.field_71;
  895.    }
  896.  
  897.    // $FF: renamed from: h (java.lang.String) javax.microedition.lcdui.Displayable
  898.    private Displayable method_35(String var1) {
  899.       if (var1 == "OK") {
  900.          this.method_48(this.field_71);
  901.          this.field_71.getSelectedFlags(this.field_48);
  902.          if (!this.field_48[2]) {
  903.             e.a();
  904.          }
  905.  
  906.          if (this.field_81 != null) {
  907.             int var2 = this.field_81.getSelectedIndex();
  908.             field_82 = this.field_81.getString(var2);
  909.             this.method_48(this.field_81);
  910.          }
  911.  
  912.          this.field_55.a(this.field_48);
  913.          this.field_55.a(this.field_55.do());
  914.          this.method_20();
  915.       } else if (var1 == "Character set...") {
  916.          this.field_81 = new List("Character set", 1);
  917.          this.field_81.addCommand(this.field_51);
  918.          this.field_81.addCommand(this.field_52);
  919.          this.field_81.append("Automatic", (Image)null);
  920.          int var4 = 0;
  921.  
  922.          while((var4 = field_80.indexOf(61, var4 + 1)) > 0) {
  923.             String var3 = method_18(field_80, var4);
  924.             if (var3 != null) {
  925.                if (field_82.equals(var3)) {
  926.                   this.field_81.insert(0, var3, (Image)null);
  927.                } else {
  928.                   this.field_81.append(var3, (Image)null);
  929.                }
  930.             }
  931.          }
  932.  
  933.          this.field_81.setSelectedIndex(0, true);
  934.          return this.field_81;
  935.       }
  936.  
  937.       this.field_71 = null;
  938.       this.field_81 = null;
  939.       return this.field_55;
  940.    }
  941.  
  942.    // $FF: renamed from: i (java.lang.String) javax.microedition.lcdui.Displayable
  943.    private Displayable method_36(String var1) {
  944.       this.method_13();
  945.       this.field_76 = new b(var1);
  946.       this.field_74 = true;
  947.       this.field_54.setCurrent(this.field_76);
  948.       return null;
  949.    }
  950.  
  951.    // $FF: renamed from: for () boolean
  952.    private boolean method_37() {
  953.       this.method_13();
  954.       this.field_77 = new Vector();
  955.       this.field_66 = new List("Download", 3);
  956.       String var1 = this.field_55.do(this.field_55.do(), 300);
  957.       var1 = var1.replace('\n', ' ');
  958.       int var4 = -1;
  959.       int var3 = 0;
  960.       String var5 = this.field_55.do(0, 200);
  961.  
  962.       int var2;
  963.       int var6;
  964.       for(this.field_79 = this.method_38(var5); (var2 = var1.indexOf("T: ", var3)) >= var3; var3 = var6) {
  965.          var6 = var1.indexOf("F: [", var2);
  966.          if (var6 < var2) {
  967.             break;
  968.          }
  969.  
  970.          var4 = var1.indexOf(93, var6);
  971.          if (var4 < var6) {
  972.             break;
  973.          }
  974.  
  975.          String var7 = var1.substring(var2 + 3, var6);
  976.          this.field_66.append(var7, (Image)null);
  977.          String var8 = var1.substring(var6 + 4, var4);
  978.          this.field_77.addElement(var8);
  979.       }
  980.  
  981.       this.field_66.addCommand(this.field_52);
  982.       if (this.field_77.size() == 0) {
  983.          var1 = this.method_38(var1);
  984.          if (var1 != null) {
  985.             this.field_78 = var1;
  986.          }
  987.  
  988.          return false;
  989.       } else {
  990.          return true;
  991.       }
  992.    }
  993.  
  994.    // $FF: renamed from: void (java.lang.String) java.lang.String
  995.    String method_38(String var1) {
  996.       int var2 = var1.indexOf("http://");
  997.       int var3 = var1.length();
  998.       if (var2 >= 0) {
  999.          for(int var4 = 0; var4 < field_84.length; ++var4) {
  1000.             int var5 = var1.indexOf(field_84[var4], var2);
  1001.             if (var5 > var2 && var5 < var3) {
  1002.                var3 = var5;
  1003.             }
  1004.          }
  1005.  
  1006.          if (var1.charAt(var3 - 1) == '.') {
  1007.             --var3;
  1008.          }
  1009.  
  1010.          var1 = var1.substring(var2, var3);
  1011.          return var1;
  1012.       } else {
  1013.          return null;
  1014.       }
  1015.    }
  1016.  
  1017.    // $FF: renamed from: null () javax.microedition.lcdui.Displayable
  1018.    private Displayable method_39() {
  1019.       return (Displayable)(this.method_37() ? this.field_66 : this.method_22("Enter URL", this.field_78));
  1020.    }
  1021.  
  1022.    // $FF: renamed from: int (java.lang.String) javax.microedition.lcdui.Displayable
  1023.    private Displayable method_40(String var1) {
  1024.       Object var2 = this.field_55;
  1025.       if (var1 != "Cancel") {
  1026.          String var3 = (String)this.field_77.elementAt(this.field_66.getSelectedIndex());
  1027.          if (var3.indexOf("http://") != 0 && this.field_79 != null) {
  1028.             if (var3.lastIndexOf(46) < 0) {
  1029.                var3 = var3 + ".txt";
  1030.             }
  1031.  
  1032.             var3 = this.field_79 + var3;
  1033.          }
  1034.  
  1035.          var2 = this.method_22("Enter URL", var3);
  1036.       }
  1037.  
  1038.       this.field_77 = null;
  1039.       this.field_66 = null;
  1040.       return (Displayable)var2;
  1041.    }
  1042.  
  1043.    // $FF: renamed from: if () java.util.Vector
  1044.    Vector method_41() {
  1045.       String var1 = new String(this.field_55.goto().a());
  1046.       Vector var2 = new Vector();
  1047.       Stack var3 = new Stack();
  1048.       int var4 = var1.length();
  1049.  
  1050.       for(int var5 = 0; var5 < var4; ++var5) {
  1051.          char var6 = 0;
  1052.          char var7 = var1.charAt(var5);
  1053.          if (var7 == '+' || Character.isDigit(var7)) {
  1054.             StringBuffer var8 = new StringBuffer();
  1055.             var8.append(var7);
  1056.  
  1057.             while(true) {
  1058.                ++var5;
  1059.                if (var5 >= var4) {
  1060.                   break;
  1061.                }
  1062.  
  1063.                var6 = var7;
  1064.                var7 = var1.charAt(var5);
  1065.                if (" )-".indexOf(var7) < 0) {
  1066.                   if (!Character.isDigit(var7)) {
  1067.                      break;
  1068.                   }
  1069.  
  1070.                   var8.append(var7);
  1071.                }
  1072.             }
  1073.  
  1074.             if (var5 == var4 || var6 == ' ' || " .,\t\r\n".indexOf(var7) >= 0) {
  1075.                if (var8.length() >= 8) {
  1076.                   var2.addElement(var8.toString());
  1077.                } else if (var8.length() >= 5) {
  1078.                   ((Vector)var3).insertElementAt(var8.toString(), 0);
  1079.                }
  1080.             }
  1081.          }
  1082.       }
  1083.  
  1084.       while(((Vector)var3).size() > 0) {
  1085.          var2.addElement(var3.pop());
  1086.       }
  1087.  
  1088.       return var2;
  1089.    }
  1090.  
  1091.    // $FF: renamed from: goto () javax.microedition.lcdui.Displayable
  1092.    public Displayable method_42() {
  1093.       Vector var1 = this.method_41();
  1094.       int var2 = var1.size();
  1095.       if (var2 > 0) {
  1096.          this.field_58 = new TextBox("Call", "", 30, 3);
  1097.          this.field_58.addCommand(this.field_51);
  1098.          this.field_58.addCommand(this.field_52);
  1099.  
  1100.          for(int var3 = 1; var3 < var2; ++var3) {
  1101.             this.field_58.addCommand(new Command((String)var1.elementAt(var3), 4, var3 + 2));
  1102.          }
  1103.  
  1104.          this.field_58.setCommandListener(this);
  1105.          this.field_54.setCurrent(this.field_58);
  1106.          if (var2 > 0) {
  1107.             this.field_58.setString((String)var1.elementAt(0));
  1108.             this.method_43("OK");
  1109.          }
  1110.       }
  1111.  
  1112.       return this.field_58;
  1113.    }
  1114.  
  1115.    // $FF: renamed from: goto (java.lang.String) javax.microedition.lcdui.Displayable
  1116.    private Displayable method_43(String var1) {
  1117.       if (var1 == "OK") {
  1118.          String var2 = this.field_58.getString();
  1119.          if (var2.length() > 0) {
  1120.             try {
  1121.                Call.start(this.field_58.getString());
  1122.             } catch (NotAllowedException var4) {
  1123.             }
  1124.          }
  1125.       } else {
  1126.          if (var1 == "Cancel") {
  1127.             this.field_58 = null;
  1128.             return this.field_55;
  1129.          }
  1130.  
  1131.          this.field_58.setString(var1);
  1132.       }
  1133.  
  1134.       return this.field_58;
  1135.    }
  1136.  
  1137.    // $FF: renamed from: a (b, java.lang.String, boolean, java.lang.String) void
  1138.    synchronized void method_44(b var1, String var2, boolean var3, String var4) {
  1139.       if (var4 != null) {
  1140.          this.field_54.setCurrent(this.method_22(var4, var2));
  1141.       } else if (method_6(var2)) {
  1142.          this.method_55(var2);
  1143.          this.field_54.setCurrent(this.field_55);
  1144.       }
  1145.  
  1146.       this.field_76 = null;
  1147.       this.field_74 = false;
  1148.       this.method_7();
  1149.    }
  1150.  
  1151.    // $FF: renamed from: d () java.lang.String
  1152.    private String method_45() {
  1153.       this.method_13();
  1154.       File var1 = new File();
  1155.  
  1156.       try {
  1157.          byte[] var2 = field_47;
  1158.          int var3 = var1.open("Readme.1.0.txt");
  1159.          int var5 = "\r\n\r\n".length();
  1160.          int var7 = 0;
  1161.  
  1162.          for(int var8 = 0; var8 < field_85.length; var8 += 2) {
  1163.             String var9 = field_85[var8];
  1164.             if (var9.length() < 2) {
  1165.                break;
  1166.             }
  1167.  
  1168.             if (var8 != 0) {
  1169.                System.arraycopy("\r\n\r\n".getBytes(), 0, var2, var7, var5);
  1170.                var7 += var5;
  1171.                byte[] var6 = ("* " + var9 + "\r\n\r\n").getBytes();
  1172.                System.arraycopy(var6, 0, var2, var7, var6.length);
  1173.                var7 += var6.length;
  1174.             }
  1175.  
  1176.             for(byte var12 : field_85[var8 + 1].getBytes()) {
  1177.                if (var12 == 10) {
  1178.                   var2[var7++] = 13;
  1179.                }
  1180.  
  1181.                var2[var7++] = var12;
  1182.             }
  1183.          }
  1184.  
  1185.          var1.write(var3, var2, 0, var7);
  1186.          var1.close(var3);
  1187.       } catch (Exception var13) {
  1188.       }
  1189.  
  1190.       return "Readme.1.0.txt";
  1191.    }
  1192.  
  1193.    // $FF: renamed from: n (java.lang.String) javax.microedition.lcdui.Displayable
  1194.    private Displayable method_46(String var1) {
  1195.       Object var2 = this.field_55;
  1196.       if (var1 == "View Readme") {
  1197.          try {
  1198.             this.method_48(this.field_68);
  1199.             if (!method_6("Readme.1.0.txt")) {
  1200.                this.method_45();
  1201.             }
  1202.  
  1203.             this.method_55("Readme.1.0.txt");
  1204.             this.field_55.a(0);
  1205.          } catch (Exception var6) {
  1206.          }
  1207.  
  1208.          return this.field_55;
  1209.       } else {
  1210.          if (var1 == null) {
  1211.             var2 = this.field_68 = new List("Help topics", 3);
  1212.             this.field_68.addCommand(new Command("Back", 2, 0));
  1213.          }
  1214.  
  1215.          for(int var3 = 0; var3 < field_85.length; var3 += 2) {
  1216.             String var4 = field_85[var3];
  1217.             String var5 = field_85[var3 + 1];
  1218.             if (var1 == null) {
  1219.                this.field_68.append(var4, (Image)null);
  1220.             } else if (var4.indexOf(var1) == 0) {
  1221.                var2 = this.field_70 = new Form("Help/" + var4);
  1222.                this.field_70.append(var5);
  1223.                this.field_70.addCommand(new Command("OK", 2, 0));
  1224.                break;
  1225.             }
  1226.          }
  1227.  
  1228.          if (var1 == null) {
  1229.             this.field_68.append("View Readme", (Image)null);
  1230.          }
  1231.  
  1232.          return (Displayable)var2;
  1233.       }
  1234.    }
  1235.  
  1236.    // $FF: renamed from: new (java.lang.String) javax.microedition.lcdui.Displayable
  1237.    private Displayable method_47(String var1) {
  1238.       if (var1 != "Back") {
  1239.          return this.method_46(this.field_68.getString(this.field_68.getSelectedIndex()));
  1240.       } else {
  1241.          this.field_68 = null;
  1242.          this.field_70 = null;
  1243.          return this.field_55;
  1244.       }
  1245.    }
  1246.  
  1247.    // $FF: renamed from: a (javax.microedition.lcdui.Screen) void
  1248.    private void method_48(Screen var1) {
  1249.       var1.setTitle("Please wait...");
  1250.    }
  1251.  
  1252.    // $FF: renamed from: a (java.lang.String[], int, javax.microedition.lcdui.Displayable) void
  1253.    void method_49(String[] var1, int var2, Displayable var3) {
  1254.       for(int var4 = 0; var4 < var2; ++var4) {
  1255.          String var5 = var1[var4];
  1256.          var3.addCommand(new Command(var5, var5 != "Cancel" ? 4 : 2, var4));
  1257.       }
  1258.  
  1259.    }
  1260.  
  1261.    // $FF: renamed from: h () javax.microedition.lcdui.List
  1262.    private List method_50() {
  1263.       if (this.field_65 == null) {
  1264.          this.field_65 = new List("", 3);
  1265.          int var1 = field_86.length;
  1266.          this.method_49(field_86, var1, this.field_65);
  1267.          this.field_87 = new Command("Delete...", 4, var1);
  1268.          this.field_65.append("Open...", (Image)null);
  1269.          this.field_65.append("Exit", (Image)null);
  1270.       }
  1271.  
  1272.       this.field_65.setTitle(this.method_12("File"));
  1273.       this.field_65.setSelectedIndex(0, true);
  1274.       return this.field_65;
  1275.    }
  1276.  
  1277.    // $FF: renamed from: d (java.lang.String) javax.microedition.lcdui.Displayable
  1278.    private Displayable method_51(String var1) {
  1279.       if (var1 != "Cancel") {
  1280.          int var2 = this.field_65.getSelectedIndex();
  1281.          String var3 = this.field_65.getString(var2);
  1282.          String var4 = var3;
  1283.          if (!this.field_61.contains(var3)) {
  1284.             var4 = this.field_60;
  1285.          }
  1286.  
  1287.          if (var1 == "Delete...") {
  1288.             return this.method_57(var4);
  1289.          }
  1290.  
  1291.          if (var1 == "Rename...") {
  1292.             return this.method_61(var4);
  1293.          }
  1294.  
  1295.          if (var1 == "Download...") {
  1296.             return this.method_39();
  1297.          }
  1298.  
  1299.          if (var1 == "Edit..") {
  1300.             if (!var4.equals(this.field_60)) {
  1301.                this.method_48(this.field_65);
  1302.                this.method_55(var4);
  1303.             }
  1304.  
  1305.             return this.method_65();
  1306.          }
  1307.  
  1308.          if (var1 == "Open..." || var3 == "Open...") {
  1309.             return this.method_22("Enter file name", "");
  1310.          }
  1311.  
  1312.          if (var3 == "Exit") {
  1313.             this.field_55.null();
  1314.             this.destroyApp(false);
  1315.          } else {
  1316.             this.method_48(this.field_65);
  1317.             field_88 = var4;
  1318.             this.method_55(var4);
  1319.          }
  1320.       }
  1321.  
  1322.       return this.field_55;
  1323.    }
  1324.  
  1325.    // $FF: renamed from: else () void
  1326.    static void method_52() {
  1327.       if (field_88 != null) {
  1328.          field_53.method_23(field_88);
  1329.          field_88 = null;
  1330.       }
  1331.  
  1332.    }
  1333.  
  1334.    // $FF: renamed from: c (java.lang.String) boolean
  1335.    boolean method_53(String var1) {
  1336.       for(int var2 = var1.length() - 1; var2 >= 0; --var2) {
  1337.          char var3 = var1.charAt(var2);
  1338.          if ("*:<>\"?|".indexOf(var3) >= 0) {
  1339.             return false;
  1340.          }
  1341.       }
  1342.  
  1343.       return true;
  1344.    }
  1345.  
  1346.    // $FF: renamed from: else (java.lang.String) javax.microedition.lcdui.Displayable
  1347.    private Displayable method_54(String var1) {
  1348.       if (var1 == "OK") {
  1349.          String var2 = this.field_59.getString();
  1350.          if (var2.length() == 0) {
  1351.             this.field_59.setTitle("Enter file name");
  1352.             return null;
  1353.          }
  1354.  
  1355.          if (var2.indexOf("http://") == 0) {
  1356.             this.field_55.null();
  1357.             if (var2.length() < "http://".length() + 5) {
  1358.                return null;
  1359.             }
  1360.  
  1361.             this.field_78 = var2;
  1362.             return this.method_36(var2);
  1363.          }
  1364.  
  1365.          if (!this.method_53(var2)) {
  1366.             return null;
  1367.          }
  1368.  
  1369.          this.method_48(this.field_59);
  1370.          if (!this.method_55(var2)) {
  1371.             String var3 = method_10(var2) + ".txt";
  1372.             byte[] var4 = f.do(var2);
  1373.             method_3(var3, var4, var4.length, false);
  1374.             if (method_6(var3) && this.method_55(var3)) {
  1375.                return this.method_65();
  1376.             }
  1377.  
  1378.             this.field_59.setTitle("Could not open");
  1379.             return null;
  1380.          }
  1381.       } else if (var1 != "Cancel") {
  1382.          Vector var5 = this.method_21();
  1383.          int var6 = var5.indexOf(var1);
  1384.          if (var6 >= 0) {
  1385.             this.field_59.setString((String)var5.elementAt(var6 + 1));
  1386.             return null;
  1387.          }
  1388.  
  1389.          return this.field_65;
  1390.       }
  1391.  
  1392.       return this.field_55;
  1393.    }
  1394.  
  1395.    // $FF: renamed from: do (java.lang.String) boolean
  1396.    private boolean method_55(String var1) {
  1397.       var1 = method_9(var1);
  1398.       if (var1 != null) {
  1399.          this.method_25(var1);
  1400.          return true;
  1401.       } else {
  1402.          return false;
  1403.       }
  1404.    }
  1405.  
  1406.    // $FF: renamed from: if (java.lang.String) javax.microedition.lcdui.Displayable
  1407.    private Displayable method_56(String var1) {
  1408.       if (var1 == "Keep bookmarks") {
  1409.          this.field_90 = true;
  1410.          return null;
  1411.       } else {
  1412.          if (var1 != "Cancel" && this.field_61.size() > 1) {
  1413.             try {
  1414.                this.method_48(this.field_69);
  1415.                String var2 = ((StringItem)this.field_69.get(0)).getText();
  1416.                if (var2.equals(this.field_60)) {
  1417.                   this.method_55((String)this.field_61.elementAt(1));
  1418.                }
  1419.  
  1420.                try {
  1421.                   File.delete(var2);
  1422.                } catch (Exception var4) {
  1423.                }
  1424.  
  1425.                this.method_24(var2);
  1426.                if (!this.field_90) {
  1427.                   File.delete(method_11(var2));
  1428.                }
  1429.             } catch (Exception var5) {
  1430.             }
  1431.          }
  1432.  
  1433.          this.field_69 = null;
  1434.          return this.method_50();
  1435.       }
  1436.    }
  1437.  
  1438.    // $FF: renamed from: null (java.lang.String) javax.microedition.lcdui.Displayable
  1439.    private Displayable method_57(String var1) {
  1440.       this.field_90 = false;
  1441.       this.field_69 = new Form("Delete");
  1442.       this.field_69.insert(0, new StringItem("File:", var1));
  1443.       this.field_69.addCommand(this.field_52);
  1444.       this.field_69.addCommand(new Command("Keep bookmarks", 8, 0));
  1445.       this.field_69.addCommand(this.field_51);
  1446.       return this.field_69;
  1447.    }
  1448.  
  1449.    // $FF: renamed from: char () javax.microedition.lcdui.Displayable
  1450.    private Displayable method_58() {
  1451.       if (this.field_57 == null) {
  1452.          this.field_57 = new TextBox("Enter page number", (String)null, 10, 2);
  1453.          Command var1 = new Command("Go to", 4, 0);
  1454.          this.field_57.addCommand(var1);
  1455.          this.field_57.addCommand(this.field_52);
  1456.       }
  1457.  
  1458.       return this.field_57;
  1459.    }
  1460.  
  1461.    // $FF: renamed from: g (java.lang.String) javax.microedition.lcdui.Displayable
  1462.    private Displayable method_59(String var1) {
  1463.       if (var1 == "Go to") {
  1464.          String var2 = this.field_57.getString();
  1465.  
  1466.          try {
  1467.             int var3 = Integer.parseInt(var2);
  1468.             this.field_55.a((var3 - 1) * 128, (char)(128 / 4));
  1469.          } catch (Exception var4) {
  1470.             return this.field_57;
  1471.          }
  1472.       }
  1473.  
  1474.       return this.field_55;
  1475.    }
  1476.  
  1477.    // $FF: renamed from: g () void
  1478.    void method_60() {
  1479.       Displayable var1 = this.method_30();
  1480.       var1.setCommandListener(this);
  1481.       this.field_54.setCurrent(var1);
  1482.       System.gc();
  1483.    }
  1484.  
  1485.    // $FF: renamed from: try (java.lang.String) javax.microedition.lcdui.Displayable
  1486.    Displayable method_61(String var1) {
  1487.       this.field_93 = var1;
  1488.       this.field_92 = method_10(var1);
  1489.       this.field_91 = new TextBox("Rename", this.field_92, 30, 4);
  1490.       this.field_91.addCommand(this.field_51);
  1491.       this.field_91.addCommand(this.field_52);
  1492.       return this.field_91;
  1493.    }
  1494.  
  1495.    // $FF: renamed from: long (java.lang.String) javax.microedition.lcdui.Displayable
  1496.    Displayable method_62(String var1) {
  1497.       int var2 = this.field_65.getSelectedIndex();
  1498.       if (var1 != "Cancel") {
  1499.          String var3 = this.field_91.getString();
  1500.          if (!this.method_53(var3)) {
  1501.             return null;
  1502.          }
  1503.  
  1504.          if (!this.field_93.equals(this.field_92) && var3.indexOf(".txt") != var3.length() - 4) {
  1505.             var3 = var3 + ".txt";
  1506.          }
  1507.  
  1508.          String var4 = method_10(var3);
  1509.          if (!var3.equals(this.field_93)) {
  1510.             String var5 = method_11(var4);
  1511.             if (method_6(var3)) {
  1512.                this.field_91.setTitle("File exists");
  1513.                return null;
  1514.             }
  1515.  
  1516.             try {
  1517.                this.method_48(this.field_91);
  1518.                int var6 = this.field_61.indexOf(this.field_93);
  1519.                if (var6 == 0) {
  1520.                   this.field_55.else();
  1521.                }
  1522.  
  1523.                File.rename(method_11(this.field_93), var5);
  1524.                File.rename(this.field_93, var3);
  1525.                if (var6 >= 0) {
  1526.                   this.field_61.setElementAt(var3, var6);
  1527.                   this.method_20();
  1528.                   if (var6 == 0) {
  1529.                      this.field_55.if(this.field_60 = var3);
  1530.                   } else {
  1531.                      this.field_65.set(var2, var3, (Image)null);
  1532.                   }
  1533.                }
  1534.             } catch (Exception var7) {
  1535.             }
  1536.          }
  1537.       }
  1538.  
  1539.       this.field_91 = null;
  1540.       this.field_93 = null;
  1541.       this.field_65 = this.method_50();
  1542.       this.field_65.setSelectedIndex(var2, true);
  1543.       return this.field_65;
  1544.    }
  1545.  
  1546.    // $FF: renamed from: byte () boolean
  1547.    boolean method_63() {
  1548.       if (this.field_102 != null && this.field_102.length() > 0 && this.field_102.length() + field_94.size() < this.field_106) {
  1549.          if (!this.field_105) {
  1550.             field_94.addCommand(this.field_104);
  1551.             this.field_105 = true;
  1552.          }
  1553.       } else if (this.field_105) {
  1554.          field_94.removeCommand(this.field_104);
  1555.          this.field_105 = false;
  1556.       }
  1557.  
  1558.       return this.field_105;
  1559.    }
  1560.  
  1561.    // $FF: renamed from: void () void
  1562.    void method_64() {
  1563.       field_94 = new TextBox("", "", this.field_106, 0);
  1564.       this.method_49(field_101, field_101.length, field_94);
  1565.       this.field_104 = new Command("Paste", 4, 6);
  1566.       field_64 = new Form("");
  1567.       field_64.append(new StringItem("", "Save changes?"));
  1568.       field_64.addCommand(new Command("Yes", 4, 1));
  1569.       field_64.addCommand(new Command("No", 4, 0));
  1570.    }
  1571.  
  1572.    // $FF: renamed from: case () javax.microedition.lcdui.Displayable
  1573.    Displayable method_65() {
  1574.       this.method_13();
  1575.       TextBox var1 = field_94;
  1576.       this.field_95 = this.field_55.goto();
  1577.       field_94.setTitle(this.method_12("Edit"));
  1578.       field_94.setString(this.field_95.a());
  1579.       this.method_63();
  1580.       field_94.setCommandListener(this);
  1581.       this.field_107 = field_94.size();
  1582.       this.field_54.setCurrent(var1);
  1583.       return var1;
  1584.    }
  1585.  
  1586.    // $FF: renamed from: a (int, int) void
  1587.    static void method_66(int var0, int var1) {
  1588.       String var2 = "" + var0 * 100 / var1 + "% saved";
  1589.       field_94.setTitle(var2);
  1590.       field_64.setTitle(var2);
  1591.    }
  1592.  
  1593.    // $FF: renamed from: char (java.lang.String) javax.microedition.lcdui.Displayable
  1594.    Displayable method_67(String var1) {
  1595.       int var2 = field_94.getCaretPosition();
  1596.       if (var1 == "Yes") {
  1597.          this.method_48(field_64);
  1598.          var1 = "Save";
  1599.       }
  1600.  
  1601.       if (var1 == "Save") {
  1602.          if (this.field_103 == null) {
  1603.             this.field_103 = field_94.getString();
  1604.          }
  1605.  
  1606.          String var3 = this.field_103;
  1607.          if (!var3.equals(this.field_95.a())) {
  1608.             this.method_48(field_94);
  1609.             byte[] var4 = f.do(var3);
  1610.             String var5 = this.field_55.a(this.field_95, var4);
  1611.             if (var5 != null) {
  1612.                field_94.setTitle(var5);
  1613.                return field_94;
  1614.             }
  1615.  
  1616.             char[] var6 = this.field_95.do();
  1617.             int var7 = this.field_95.new;
  1618.             int var8 = var3.length();
  1619.             int var9 = this.field_95.if();
  1620.             int var10 = var4.length - this.field_95.a;
  1621.             char var11 = 0;
  1622.             if (var10 > 0) {
  1623.                a var12 = this.field_55.a(var4, 0, '\u0000', (char)var4.length);
  1624.                int var13 = var12.for();
  1625.                Object var22 = null;
  1626.                Object var17 = null;
  1627.                if (var13 >= this.field_55.p) {
  1628.                   int var14 = var9;
  1629.                   int var15 = var8;
  1630.  
  1631.                   while(true) {
  1632.                      --var14;
  1633.                      if (var14 < 0) {
  1634.                         break;
  1635.                      }
  1636.  
  1637.                      --var15;
  1638.                      if (var15 < var9) {
  1639.                         break;
  1640.                      }
  1641.  
  1642.                      if (var6[var14] != var3.charAt(var15)) {
  1643.                         var7 += var10;
  1644.                         var11 = (char)Math.min(var10 + 16, var8);
  1645.                         break;
  1646.                      }
  1647.                   }
  1648.                }
  1649.             }
  1650.  
  1651.             this.field_55.a(var7, var11);
  1652.          }
  1653.       } else if (var1 == "Cancel") {
  1654.          this.field_103 = field_94.getString();
  1655.          if (!this.field_103.equals(this.field_95.a())) {
  1656.             field_64.setTitle("Text changed");
  1657.             return field_64;
  1658.          }
  1659.       } else if (var1 != "No") {
  1660.          if (var1 == "Line feed") {
  1661.             field_94.insert("\n", var2);
  1662.             this.field_107 = field_94.size();
  1663.          } else if (var1 != "Copy" && var1 != "Cut") {
  1664.             if (var1 == "Mark") {
  1665.                this.field_107 = var2;
  1666.             } else if (var1 == "Paste" && this.method_63()) {
  1667.                field_94.insert(this.field_102, var2);
  1668.                this.field_107 = field_94.size();
  1669.             }
  1670.          } else {
  1671.             String var16 = field_94.getString();
  1672.             int var18 = var16.length();
  1673.             this.field_107 = Math.min(this.field_107, var18);
  1674.             int var19 = var2;
  1675.             int var20 = this.field_107;
  1676.             if (var2 == var20) {
  1677.                var19 = 0;
  1678.                if (var20 == 0) {
  1679.                   var20 = var18;
  1680.                }
  1681.             }
  1682.  
  1683.             if (var19 > var20) {
  1684.                int var21 = var20;
  1685.                var20 = var19;
  1686.                var19 = var21;
  1687.             }
  1688.  
  1689.             this.field_102 = var16.substring(var19, var20);
  1690.             if (var1 == "Cut") {
  1691.                field_94.delete(var19, var20 - var19);
  1692.                this.field_107 = field_94.size();
  1693.             }
  1694.          }
  1695.  
  1696.          this.method_63();
  1697.          return null;
  1698.       }
  1699.  
  1700.       this.field_103 = null;
  1701.       field_94.setString("");
  1702.       this.field_95 = null;
  1703.       return this.field_55;
  1704.    }
  1705.  
  1706.    public void commandAction(Command var1, Displayable var2) {
  1707.       this.field_73 = false;
  1708.       String var3 = var1.getLabel();
  1709.       this.field_55.try();
  1710.       boolean var4 = false;
  1711.       Object var5 = this.field_55;
  1712.       this.method_7();
  1713.       this.method_13();
  1714.       if (var2 == this.field_65) {
  1715.          var5 = this.method_51(var3);
  1716.       } else if (var2 != this.field_71 && var2 != this.field_81) {
  1717.          if (var2 == this.field_66) {
  1718.             var5 = this.method_40(var3);
  1719.          } else if (var2 == this.field_68) {
  1720.             var5 = this.method_47(var3);
  1721.          } else if (var2 == this.field_70) {
  1722.             var5 = this.field_68;
  1723.          } else if (var2 == this.field_57) {
  1724.             var5 = this.method_59(var3);
  1725.          } else if (var2 == this.field_59) {
  1726.             var5 = this.method_54(var3);
  1727.          } else if (var2 == this.field_56) {
  1728.             var5 = this.method_29(var3);
  1729.          } else if (var2 == this.field_72) {
  1730.             var5 = this.method_31(var3);
  1731.          } else if (var2 == this.field_69) {
  1732.             var5 = this.method_56(var3);
  1733.          } else if (var2 == this.field_58) {
  1734.             var5 = this.method_43(var3);
  1735.          } else if (var2 == field_94) {
  1736.             var5 = this.method_67(var3);
  1737.          } else if (var2 == field_64) {
  1738.             var5 = this.method_67(var3);
  1739.          } else if (var2 == this.field_91) {
  1740.             var5 = this.method_62(var3);
  1741.          } else if (var2 == this.field_63) {
  1742.             var5 = this.method_33(var3);
  1743.          } else if (var3 == "Add bookmark") {
  1744.             var5 = this.method_32(this.field_55.case());
  1745.          } else if (var3 == "Search...") {
  1746.             var5 = this.method_28();
  1747.          } else if (var3 == "Go to...") {
  1748.             var5 = this.method_30();
  1749.          } else if (var3 == "Edit..") {
  1750.             var5 = this.method_65();
  1751.          } else if (var3 == "File...") {
  1752.             var5 = this.method_50();
  1753.          } else if (var3 == "Setup...") {
  1754.             var5 = this.method_34();
  1755.          } else if (var3 == "Help") {
  1756.             var5 = this.method_46((String)null);
  1757.          }
  1758.       } else {
  1759.          var5 = this.method_35(var3);
  1760.       }
  1761.  
  1762.       this.method_7();
  1763.       if (var5 != null) {
  1764.          ((Displayable)var5).setCommandListener(this);
  1765.          this.field_54.setCurrent((Displayable)var5);
  1766.       }
  1767.  
  1768.    }
  1769. }
  1770.